using System;
using Jandaya.Framework;

namespace Jandaya.Core.Postal
{
	/// <summary>
	/// Os dados do tipo de endereço são constantes no sistema e seguem a seguinte tabela:
	///    0 - Comercial
	///    1 - Residencial
	///    2 - Correspondência
	///    3 - Recados
	/// </summary>
	public class TipoDeEndereco : JandayaObject
	{
		private OID _ID = new OID();
		public new OID ID{
			get { return _ID; }
			set{
				if ((value.Value < 0) || (value.Value > 3)) 
					throw new ArgumentOutOfRangeException("O código do tipo de endereço ({0}) é inválido!", value.Value.ToString("0"));
			    _ID = value;
			}
		}
		
		
		/// <summary>
		/// Gets the name of the Address Type
		/// </summary>
		public string Nome{
			get{
				switch(ID.Value){
					case 0: return "Comercial"; 
					case 1: return "Residencial";
					case 2: return "Correspondência"; 
					case 3: return "Recados"; 
				default: return string.Empty;
				}				
			}
		}
		
		public TipoDeEndereco(){}
		
		public TipoDeEndereco(Int64 pCodigo){
			this.ID.Value = pCodigo;
		}
	}
}


